

//promise模板类的使用
#include <iostream>
#include <future>
#include <thread>

void Add(int num1,int num2,std::promise<int>& pro)
{
    std::this_thread::sleep_for(std::chrono::seconds(3));
    int result=num1+num2;
    pro.set_value(result);
}
//通过promise对象使两个线程之间的结果得到同步
int main()
{
    std::promise<int> pro;

    std::future<int> fut=pro.get_future();

    std::thread thr(Add,11,22,std::ref(pro));
    int ret=fut.get();//会在这里阻塞住，直到pro中结果被设置了

    std::cout<<"sum:"<<ret<<std::endl;
    thr.join();

    return 0;
}